#include #include #include //#define N 100*THREADS #define N 1*THREADS shared double global[N]; int main(int argc, char **argv) { int i, rank, size; double send_buf = 1.0, result; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); printf("num of mpi processes is %d\n",size); MPI_Barrier(MPI_COMM_WORLD); MPI_Allreduce(&send_buf, &result, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); MPI_Barrier(MPI_COMM_WORLD); printf("the value of result is %f\n", result); upc_barrier; upc_forall(i = 0; i < N; i++; i) { printf("my thread id is %d\n",MYTHREAD); global[i] = result*i; } upc_barrier; if(MYTHREAD == 0){ for (i=0;i